System and method of providing computer assisted stimulation programming (CASP)

ABSTRACT

A computer assisted programming method includes ramping up a stimulation current for a plurality of contacts on a lead. Patient feedback is received while the stimulation current is being ramped up. Patient feedback indicates that the patient is beginning to feel stimulation. Based on the patient feedback, amplitude of the stimulation current that resulted in the patient feedback is recorded, and contacts are divided into groups. The contacts are activated one group at a time to the recorded amplitude. For each activated group of contacts, whether the patient can feel stimulation is determined. Thereafter, the target group that caused the patient to feel stimulation is then sub-divided into sub-groups. This process repeats a plurality of cycles until one or more contacts that caused the patient to feel stimulation are identified. The recorded amplitude is assigned as a perception threshold for the identified one or more contacts.

PRIORITY DATA

The present application is a utility application of provisional U.S.Patent Application No. 61/824,296, filed on May 16, 2013, entitled“Features and functionalities of an advanced clinician programmer,” anda continuation-in-part of U.S. patent application Ser. No. 13/118,764,filed on May 31, 2011, entitled “System and method of establishing aprotocol for providing electrical stimulation with a stimulation systemto treat a patient,” the disclosures of each of which are herebyincorporated by reference in their respective entireties.

BACKGROUND

The invention relates to a stimulation system, such as a spinal cordstimulation (SCS) system, having a tool for programming an electricalstimulation generator, such as an implantable pulse generator (IPG), ofthe system. The invention also relates to a method for developing aprotocol for the stimulation system.

A spinal cord stimulator is a device used to provide electricalstimulation to the spinal cord or spinal nerve neurons for managingpain. The stimulator includes an implanted or external pulse generatorand an implanted medical electrical lead having one or more electrodesat a distal location thereof. The pulse generator provides thestimulation through the electrodes via a body portion and connector ofthe lead. Spinal cord stimulation programming is defined as thediscovery of the stimulation electrodes and parameters that provide thebest possible pain relief (or paresthesia) for the patient using one ormore implanted leads and its attached IPG. The programming is typicallyachieved by selecting individual electrodes and adjusting thestimulation parameters, such as the shape of the stimulation waveform,amplitude of current in mA (or amplitude of voltage in V), pulse widthin microseconds, frequency in Hz, and anodic or cathodic stimulation.

With newer medical electrical leads having an increased number ofelectrodes, the electrode and parameter combination increasesexponentially. This results in a healthcare professional, such as aclinician, requiring a substantial amount of time for establishing amanually created protocol for providing therapeutic spinal cordstimulation. Therefore, a manual approach for creating a protocol is notan optimal solution for the SCS system.

SUMMARY

Numerous embodiments of the invention provide a method and system forprogramming an SCS system with a substantially reduced time requirementand increased accuracy. More specifically, in numerous embodiments, asweep process is used with the electrodes of an implanted medical leadto determine the proper SCS program (also referred to herein as an SCSprotocol) for providing the best possible pain relieve for the patient.

In one embodiment, the present disclosure provides a programming devicefor establishing a protocol for a plurality of electrodes in one or moremedical leads coupled to an electrical stimulation generator. Theprogramming device is adapted to be in communication with the electricalstimulation generator and a patient feedback device. The programmingdevice includes, a first communication port for communication with theelectrical stimulation generator, a second communication port forcommunication with the patient feedback device, a user interface; and acontroller coupled to the first communication port, the secondcommunication port, and the user interface. The controller is configuredto create the protocol for providing electrical stimulation to treat thepatient.

In another embodiment, the present disclosure provides a system forproviding therapeutic electrical stimuli to a patient. The systemincludes one or more implantable medical leads having a plurality ofelectrodes, an electrical stimulation generator coupled to the lead, apatient feedback device, and a programming device in communication withthe electrical stimulation generator and in communication with thepatient feedback device. The programming device configured to initiate afirst automated and systematic sweep through the plurality of electrodesto determine a respective perception threshold associated with eachelectrode, receive from the patient feedback device whether the patientprovided feedback while performing the first automated and systematicsweep, initiate a second automated and systematic sweep through theplurality of electrodes to determine an electrode that is associatedwith a pain area of the patient, receive from the patient feedbackdevice whether the patient provided feedback while performing the secondautomated and systematic sweep, and develop the protocol for providingtherapeutic electrical stimulation to treat the patient based on thesecond automated and systematic sweep and the detected patient feedback.The second automated and systematic sweep uses the respective perceptionthresholds from the first automated and systematic sweep.

In another embodiment, the present disclosure provides a patientfeedback device for providing feedback to a programming device of anelectrical stimulation system providing therapeutic stimulation. Thepatient feedback device includes a sensor supported by the ergonomichousing. The sensor receives a physical response from the patient andprovides an electrical signal in response thereto. The patient feedbackdevice further includes a controller supported by the housing andcoupled to the sensor and a communication port supported by the housingand coupled to the controller. The controller receives the electricalsignal and initiates a communication signal in response thereto. Thecommunication port receives the communication signal and transmits thecommunication signal to the programming device.

In another embodiment, the present disclosure provides an electronicdevice for performing a computer-assisted stimulation programming of animplantable medical device. The electronic device includes a memorystorage component configured to store programming code. The electronicdevice also includes a computer processor configured to execute theprogramming code. When the programming code is executed, a stimulationcurrent is ramped up for a plurality of contacts on a lead that isconfigured to be implanted inside, or attached to, a patient. Patientfeedback is received while the stimulation current is being ramped up.The patient feedback indicates that the patient is beginning to feelstimulation. In response to receiving the patient feedback: an amplitudeof the stimulation current that resulted in the patient feedback isrecorded. The plurality of contacts is divided into a plurality ofgroups. The contacts are activated one group at a time. The respectiveamplitudes of the stimulation currents of the contacts in each group areset to the recorded amplitude. For each activated group of contacts, itis determined whether the patient is able to feel stimulation while saidgroup of contacts is being activated. In response to a determinationthat a target group of contacts causes the patient to feel stimulation,the target group of contacts are divided into a plurality of sub-groups.Thereafter, the dividing, the activating, the determining, and thesub-dividing are repeated one or more times until one or more contactsthat caused the patient to feel stimulation are identified. The recordedamplitude is assigned as a perception threshold for the identified oneor more contacts.

In another embodiment, the present disclosure provides a medical system.The medical system includes a lead configured to deliver electricalstimulation to a patient via one or more of a plurality of contactslocated on the lead. The medical system includes a pulse generator towhich the lead is coupled. The pulse generator is configured to generatethe electrical stimulation. The medical system includes an electronicdevice coupled to the pulse generator. The electronic device isconfigured to program the pulse generator to generate the electricalstimulation. The electronic device includes a memory storage componentconfigured to store programming code. The electronic device alsoincludes a computer processor configured to execute the programmingcode. When the programming code is executed, a stimulation current isramped up for a plurality of contacts on a lead that is configured to beimplanted inside, or attached to, a patient. Patient feedback isreceived while the stimulation current is being ramped up. The patientfeedback indicates that the patient is beginning to feel stimulation. Inresponse to receiving the patient feedback: an amplitude of thestimulation current that resulted in the patient feedback is recorded.The plurality of contacts is divided into a plurality of groups. Thecontacts are activated one group at a time. The respective amplitudes ofthe stimulation currents of the contacts in each group are set to therecorded amplitude. For each activated group of contacts, it isdetermined whether the patient is able to feel stimulation while saidgroup of contacts is being activated. In response to a determinationthat a target group of contacts causes the patient to feel stimulation,the target group of contacts are divided into a plurality of sub-groups.Thereafter, the dividing, the activating, the determining, and thesub-dividing are repeated one or more times until one or more contactsthat caused the patient to feel stimulation are identified. The recordedamplitude is assigned as a perception threshold for the identified oneor more contacts.

In another embodiment, the present disclosure provides a method ofperforming a computer-assisted stimulation programming of an implantablemedical device. A stimulation current is ramped up for a plurality ofcontacts on a lead that is configured to be implanted inside, orattached to, a patient. Patient feedback is received while thestimulation current is being ramped up. The patient feedback indicatesthat the patient is beginning to feel stimulation. In response toreceiving the patient feedback: an amplitude of the stimulation currentthat resulted in the patient feedback is recorded. The plurality ofcontacts is divided into a plurality of groups. The contacts areactivated one group at a time. The respective amplitudes of thestimulation currents of the contacts in each group are set to therecorded amplitude. For each activated group of contacts, it isdetermined whether the patient is able to feel stimulation while saidgroup of contacts is being activated. In response to a determinationthat a target group of contacts causes the patient to feel stimulation,the target group of contacts are divided into a plurality of sub-groups.Thereafter, the dividing, the activating, the determining, and thesub-dividing are repeated one or more times until one or more contactsthat caused the patient to feel stimulation are identified. The recordedamplitude is assigned as a perception threshold for the identified oneor more contacts.

Other aspects of the invention will become apparent by consideration ofthe detailed description and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present disclosure are best understood from the followingdetailed description when read with the accompanying figures. It isemphasized that, in accordance with the standard practice in theindustry, various features are not drawn to scale. In fact, thedimensions of the various features may be arbitrarily increased orreduced for clarity of discussion. In the figures, elements having thesame designation have the same or similar functions.

FIG. 1 is a partial perspective view of a patient using a spinal cordstimulation system.

FIG. 2 is a perspective view of an in-line lead for use in the spinalcord stimulation system of FIG. 1.

FIG. 3 is a perspective view of a paddle lead for use in the spinal cordstimulation system of FIG. 1.

FIG. 4 is a block diagram of a patient-feedback device for use in thespinal cord stimulation system of FIG. 1.

FIG. 5 is a side view of a patient-feedback device inserted in the mouthof a patient

FIG. 6 is a side view of a patient-feedback device with optical sensing.

FIG. 7 is a side view of a patient-feedback device activated by a footof a patient.

FIG. 8 is a block diagram of an implantable pulse generator for use inthe spinal cord stimulation system of FIG. 1.

FIG. 9 is a block diagram of a clinician programmer for use in thespinal cord stimulation system of FIG. 1.

FIG. 10 is a flow diagram of a patient performing an initial visit witha clinician.

FIG. 11 is a flow diagram of a patient undergoing an initial visitfollowed by trial surgery procedure.

FIG. 12 is a flow diagram of the manual programming of a lead.

FIG. 13 is a flow diagram of the computer assisted programming of alead.

FIG. 14 is a flow diagram of a patient performing a post trialprogramming session.

FIG. 15 is a flow diagram of a patient undergoing a permanent surgeryprocedure.

FIG. 16 is a flow diagram of an exemplary computer assisted stimulationprogramming process for use with the spinal cord stimulation system ofFIG. 1.

FIG. 17 is a flow diagram of an exemplary process for determiningimpedance values associated with each electrode.

FIGS. 18A and 18B are a flow diagram of an exemplary process fordetermining perception threshold values associated with each electrode.

FIG. 19 is a flow diagram of an exemplary process for determining astimulation electrode sub-array reaching a pain area of the patient.

FIGS. 20 and 31 are flowcharts illustrating various methods forperforming computer assisted stimulation programming according tovarious embodiments of the present disclosure.

FIGS. 21-25 are simplified diagrammatic illustrations of an example leadthat contains a plurality of contacts according to various embodimentsof the present disclosure.

FIGS. 26-30 are example screenshots of a user interface 1200 forvisually representing different aspects of the CASP and alternative CASPprocesses according to the various embodiments of the presentdisclosure.

DETAILED DESCRIPTION

It is to be understood that the following disclosure provides manydifferent embodiments, or examples, for implementing different featuresof the invention. Specific examples of components and arrangements aredescribed below to simplify the present disclosure. These are, ofcourse, merely examples and are not intended to be limiting. Variousfeatures may be arbitrarily drawn in different scales for simplicity andclarity.

Before any embodiments of the invention are explained in detail, it isto be understood that the invention is not limited in its application tothe details of construction and the arrangement of components set forthin the following description or illustrated in the following drawings.The invention is capable of other embodiments and of being practiced orof being carried out in various ways.

The invention herein relates to an electrical stimulation system forproviding stimulation to target tissue of a patient. The systemdescribed in detail below is a spinal cord stimulation (SCS) system forproviding electrical pulses to the neurons of the spinal cord of apatient. However, many aspects of the invention are not limited tospinal cord stimulation. The electrical stimulation system may providestimulation to other body portions including a muscle or muscle group,nerves, the brain, etc.

FIG. 1 shows a spinal cord stimulation system 100 in use with a patient105. The system includes one or more implanted medical electrical leads110 connected to an implantable pulse generator (IPG) 115. The leads 110include an electrode array 120 at a distal end of the base lead cable.The electrode array 120 includes one or more electrical stimulationelectrodes (may also be referred as electrode contacts or simplyelectrodes) and is placed adjacent to the dura of the spine 125 using ananchor. The spinal column includes the C1-C7 (cervical), T1-T12(thoracic), L1-L5 (lumbar) and S1-S6 (sacral) vertebrae and theelectrode array(s) 120 may be positioned anywhere along the spine 125 todeliver the intended therapeutic effects of spinal cord electricalstimulation in a desired region of the spine. The electrodes (discussedfurther in FIGS. 2 and 3) of the electrode arrays 120 promote electricalstimulation to the neurons of the spine based on electrical signalsgenerated by the IPG 115. In one construction, the electrical signalsare regulated current pulses that are rectangular in shape. However, theelectrical signals can be other types of signals, including other typesof pulses (e.g., regulated voltage pulses), and other shapes of pulses(e.g., trapezoidal, sinusoidal). The stimulation is provided from theIPG 115 to the electrodes via the base lead, which is connected to theIPG 115 with the proximal end of the base lead. The body of the lead cantraverse through the body of the patient via the spinal column and fromthe spinal column through the body of the patient to the implant site ofthe IPG 115.

The IPG 115 generates the electrical signals through a multiplicity ofelectrodes (e.g., four, eight, sixteen, twenty-four electrodes). The IPG115 can control six aspects of electrical stimulation based on aprotocol (may also be referred to as a program): on/off, amplitude(e.g., current or voltage), frequency, pulse width, pulse shape, andpolarity (anodic or cathodic stimulation). The stimulation mostdiscussed herein is a regulated (or constant) current that provides asquare wave, cathodic stimulation with a variable amplitude, frequency,and/or pulse width. Typically, the IPG 115 is implanted in a surgicallymade pocket (e.g., in the abdomen) of the patient. However, the pulsegenerator can also be an external pulse generator (EPG).

The IPG 115 communicates with any one of a clinician programmer (CP)130, a patient programmer and charger (PPC) 135, and a pocket (or fob)programmer (PP) 140. As discussed in further detail below, the CP 130interacts with the IPG 115 to develop a protocol for stimulating thepatient. The developing of the protocol is assisted with the use of apatient-feedback device (PFD) 145. Once a protocol is developed, the PPC135 or the PP 140 can activate, deactivate, or perform limited changesto the programming parameters of the protocol. The protocol may bestored at the IPG 115 or can be communicated and stored at the PPC 135or the PP 140. The PPC 135 is also used for charging the IPG 115.

For the construction described herein, the IPG 115 includes arechargeable, multichannel, radio-frequency (RF) programmable pulsegenerator housed in a metallic (e.g., titanium) case or housing. Themetallic case is sometimes referred to as the “can” and may act eitheras a cathode or an anode or floating to the electrical contacts.

Referring now to FIGS. 2 and 3, the figures show two exemplary leads110A and 110B, respectively, that can be used in the SCS system. A firstcommon type of lead 110 is the “in-line” lead shown in FIG. 2. Anin-line lead 110A includes individual electrodes 150A along the lengthof a flexible cable 155A. A second common type of lead 110 is the“paddle” lead shown in FIG. 3. In general, the paddle lead 110B isshaped with a wide platform 160B on which a variety of electrode 150Bconfigurations are situated. For example, the paddle lead 110B shown inFIG. 3 has two columns of four rectangular shaped electrodes 150B. Apaddle lead typically contains contacts on one side only, but is notrestricted to individual electrodes on either side, or electrodesperforating the carrier material.

For both leads shown in FIGS. 2 and 3, a flexible cable 155A or 155B hasrespective small wires for the electrodes 150A or 150B. The wires areembedded within the cable 155A or 155B and carry the electricalstimulation from the IPG 115 to the electrodes 150A or 150B.

It is envisioned that other types of leads 110 and electrode arrays 120can be used with the invention. Also, the number of electrodes 150 andhow the electrodes 150 are arranged in the electrode array 120 can varyfrom the examples discussed herein.

The leads shown in FIGS. 2 and 3 are multiple channel leads. Here, a“channel” is defined as a specified electrode 150, or group ofelectrodes 150, that receives a specified pattern or sequence ofelectrical stimuli. For simplicity, this description will focus on eachelectrode 150 and the IPG's 115 metallic housing providing a respectivechannel. When more than one channel is available, each channel may beprogrammed to provide its own stimulus to its defined electrode.

There are many instances when it is advantageous to have multiplechannels for stimulation. For example, different pain locations (e.g.,upper extremities, lower extremities) of the patient may requiredifferent stimuli. Further, some patients may exhibit conditions bettersuited to “horizontal” stimulation paths, while other patients mayexhibit conditions better suited to “vertical” stimulation paths.Therefore, multiple electrodes positioned to provide multiple channelscan cover more tissue/neuron area, and thereby provide betterstimulation protocol flexibility to treat the patient.

It is also envisioned that the number of leads 110 can vary. Forexample, one, two, or four leads 110 can be connected to the IPG 115.The electrode arrays 120 of the leads 110, respectively, can be disposedin different vertical locations on the spine 125 with respect to avertical patient 105, can be disposed horizontally (or “side-by-side”)on the spine 125 with respect to a vertical patient 105, or somecombination thereof.

In alternative to the IPG 115, the leads 110 can receive electricalstimuli from an external pulse generator (EPG) (also referred to a trialstimulator) through one or more percutaneous lead extensions. An EPG maybe used during a trial period.

For the specific construction and operation described herein, a singlelead 110 having a two-by-four electrode paddle (as shown in FIG. 3) issecured to the thoracic portion of the spine 125. An IPG 115 having ametallic housing is disposed within the patient 105. The housing acts asanother electrode in this contemplated SCS system 100. Thus, thisarrangement results in nine electrodes total. Also, thespecifically-discussed system includes nine channels formed by the eightelectrodes of the electrode array 120, respectively, and the metallichousing of the IPG 115. However, it contemplated that a different numberof leads, electrodes, and channels fall within the scope of theinvention.

Referring back to FIG. 1, a user provides feedback to the CP 130 with aPFD 145 while the CP 130 develops the protocol for the IPG 115. In FIG.1, the PFD 145 is an ergonomic handheld device having a sensor (alsoreferred to as input) 165, a controller, and a communications output175. The sensor 165 can take the form of a discrete switch or can takethe form of a continuously variable input, such as through the use of astrain gauge. It is envisioned that the use of a continuously variableinput can provide magnitude information, thereby providing feedbackinformation.

FIG. 4 provides a block diagram of an exemplary handheld PFD 145 used inthe SCS system 100. The PFD 145 includes two inputs 900 and 905 incommunication with the housing of the device 145 and one input 910internal to the housing. One of the external inputs 900 is a binaryON/OFF switch, preferably activated by the patient's thumb, to allow thepatient 105 to immediately deactivate stimulation. The second input 905includes a force or displacement sensor sensing the pressure or forceexerted by the patient's hand. The sensed parameter can be eitherisotonic (constant force, measuring the distance traversed) or isometric(measuring the force, proportional to pressure applied by patient 105).The resulting signal from the sensor 905 is analog and, therefore, thesignal is conditioned, amplified, and passed to a microcontroller via ananalog-to-digital converter.

The internal input 910 for the PFD 145 of FIG. 4 is a motion sensor. Thesensor 910, upon detecting motion, initiates activation of the PFD 145.The device 145 stays active until movement is not detected by the sensor910 for a time period. Power is provided by an internal battery 920 thatcan be replaceable and/or rechargeable.

The processing of the inputs from the sensors 900 and 905 take place ina controller, such as a microcontroller 925. The microcontroller 925includes a suitable programmable portion 930 (e.g., a microprocessor ora digital signal processor), a memory 935, and a bus 940 or othercommunication lines. Output data of the microcontroller 925 is sent viaa Bluetooth bi-direction radio communication portion 945 to the CP 130.The Bluetooth portion 945 includes a Bluetooth communication interface,an antenna switch, and a related antenna, all of which allows wirelesscommunication following the Bluetooth Special Interest Group standard.Other outputs may include indicators (such as light-emitting diodes) forcommunicating stimulation activity 950, sensor activation 955, anddevice power 960, and a speaker and related circuitry 965 for audiblecommunication.

As discussed further below, the patient 105 provides feedback to the SCSsystem 100, and specifically the CP 130, while the CP 130 establishesthe protocol for the IPG 115. The patient 105 can activate the PFD 145when the patient 105 feels various stimuli, such as paresthesia or pain.

FIGS. 5-7 provide other means for receiving patient feedback. Morespecifically, FIG. 5 shows a mouth-piece 180 that is inserted into themouth of the patient. The user provides feedback by biting themouthpiece. FIG. 6 shows an optical sensor 185 (such as a camera andrelated image processing software) that detects visual cues from apatient. An example visual cue may be the blinking of the patient'seyes. FIG. 7 shows a foot pedal 190 that receives input by the patientmanipulating a switch with his foot. It is also envisioned that thepatient may provide feedback directly through the touch screen or hardbuttons on the CP 130.

As discussed earlier, it should be understood that aspects of the SCSsystem 110 can be applied to other types of electrical stimulationsystems. That is, other electrical stimulation systems provideelectrical stimuli to other types of target tissues. Similar to the SCSsystem 110, these other electrical stimulation systems include one ormore medical electrical leads having electrodes, a stimulation generatorcoupled to the one or more medical electrical leads, and a clinicianprogrammer for establishing a protocol with the stimulation generator.

FIG. 8 shows a block diagram of one construction of the IPG 115. The IPG115 includes a printed circuit board (“PCB”) that is populated with aplurality of electrical and electronic components that provide power,operational control, and protection to the IPG 115. With reference toFIG. 8, the IPG 115 includes a communication portion 200 having atransceiver 205, a matching network 210, and antenna 212. Thecommunication portion 200 receives power from a power ASIC (discussedbelow), and communicates information to/from the microcontroller 215 anda device (e.g., the CP 130) external to the IPG 115. For example, theIPG 115 can provide bi-direction radio communication capabilities,including Medical Implant Communication Service (MICS) bi-directionradio communication following the MICS specification.

The IPG 115, as previously discussed, provides stimuli to electrodes 150of an implanted medical electrical lead 110. As shown in FIG. 8, Nelectrodes 150 are connected to the IPG 115. In addition, the enclosureor housing 220 of the IPG 115 can act as an electrode. The stimuli areprovided by a stimulation portion 225 in response to commands from themicrocontroller 215. The stimulation portion 225 includes a stimulationapplication specific integrated circuit (ASIC) 230 and circuitryincluding blocking capacitors and an over-voltage protection circuit. Asis well known, an ASIC is an integrated circuit customized for aparticular use, rather than for general purpose use. ASICs often includeprocessors, memory blocks including ROM, RAM, EEPROM, Flash, etc. Thestimulation ASIC 230 can include a processor, memory, and firmware forstoring preset pulses and protocols that can be selected via themicrocontroller 215. The providing of the pulses to the electrodes 150is controlled through the use of a waveform generator and amplitudemultiplier of the stimulation ASIC 230, and the blocking capacitors andovervoltage protection circuitry of the stimulation portion 225, as isknown in the art. The stimulation portion 225 of the IPG 115 receivespower from the power ASIC (discussed below). The stimulation ASIC 230also provides signals to the microcontroller 215. More specifically, thestimulation ASIC 230 can provide impedance values for the channelsassociated with the electrodes 150, and also communicate calibrationinformation with the microcontroller 215 during calibration of the IPG115.

The IPG 115 also includes a power supply portion 240. The power supplyportion includes a rechargeable battery 245, fuse 250, power ASIC 255,recharge coil 260, rectifier 263 and data modulation circuit 265. Therechargeable battery 245 provides a power source for the power supplyportion 240. The recharge coil 260 receives a wireless signal from thePPC 135. The wireless signal includes an energy that is converted andconditioned to a power signal by the rectifier 263. The power signal isprovided to the rechargeable battery 245 via the power ASIC 255. Thepower ASIC 255 manages the power for the IPG 115. The power ASIC 255provides one or more voltages to the other electrical and electroniccircuits of the IPG 155. The data modulation circuit 265 controls thecharging process.

The IPG also includes a magnetic sensor 280. The magnetic sensor 280provides a “hard” switch upon sensing a magnet for a defined period. Thesignal from the magnetic sensor 280 can provide an override for the IPG115 if a fault is occurring with the IPG 115 and is not responding toother controllers.

The IPG 115 is shown in FIG. 8 as having a microcontroller 215.Generally speaking, the microcontroller 215 is a controller forcontrolling the IPG 115. The microcontroller 215 includes a suitableprogrammable portion 285 (e.g., a microprocessor or a digital signalprocessor), a memory 290, and a bus or other communication lines. Anexemplary microcontroller capable of being used with the IPG is a modelMSP430 ultra-low power, mixed signal processor by Texas Instruments.More specifically, the MSP430 mixed signal processor has internal RAMand flash memories, an internal clock, and peripheral interfacecapabilities. Further information regarding the MSP 430 mixed signalprocessor can be found in, for example, the “MSP430G2x32, MSP430G2x02MIXED SIGNAL MICROCONTROLLER” data sheet; dated December 2010, publishedby Texas Instruments; the content of the data sheet being incorporatedherein by reference.

The IPG 115 includes memory, which can be internal to the control device(such as memory 290), external to the control device (such as serialmemory 295), or a combination of both. Exemplary memory include aread-only memory (“ROM”), a random access memory (“RAM”), anelectrically erasable programmable read-only memory (“EEPROM”), a flashmemory, a hard disk, or another suitable magnetic, optical, physical, orelectronic memory device. The programmable portion 285 executes softwarethat is capable of being stored in the RAM (e.g., during execution), theROM (e.g., on a generally permanent basis), or another non-transitorycomputer readable medium such as another memory or a disc.

Software included in the implementation of the IPG 115 is stored in thememory 290. The software includes, for example, firmware, one or moreapplications, program data, one or more program modules, and otherexecutable instructions. The programmable portion 285 is configured toretrieve from memory and execute, among other things, instructionsrelated to the control processes and methods described below for the IPG115. For example, the programmable portion 285 is configured to executeinstructions retrieved from the memory 290 for sweeping the electrodes150 in response to a signal from the CP 130.

The PCB also includes a plurality of additional passive and activecomponents such as resistors, capacitors, inductors, integratedcircuits, and amplifiers. These components are arranged and connected toprovide a plurality of electrical functions to the PCB including, amongother things, filtering, signal conditioning, or voltage regulation, asis commonly known.

FIG. 9 shows a block diagram of one construction of the CP 130. The CP130 includes a printed circuit board (“PCB”) that is populated with aplurality of electrical and electronic components that provide power,operational control, and protection to the CP 130. With reference toFIG. 9, the CP includes a processor 300. The processor 300 is acontroller for controlling the CP 130 and, indirectly, the IPG 115 asdiscussed further below. In one construction, the processor 300 is anapplications processor model i.MX515 available from FreescaleSemiconductor. More specifically, the i.MX515 applications processor hasinternal instruction and data cashes, multimedia capabilities, externalmemory interfacing, and interfacing flexibility. Further informationregarding the i.MX515 applications processor can be found in, forexample, the “IMX510EC, Rev. 4” data sheet; dated August 2010; publishedby Freescale Semiconductor, the content of the data sheet beingincorporated herein by reference. Of course, other processing units,such as other microprocessors, microcontrollers, digital signalprocessors, etc., can be used in place of the processor 300.

The CP 130 includes memory, which can be internal to the processor 300(e.g., memory 305), external to the processor 300 (e.g., memory 310), ora combination of both. Exemplary memory include a read-only memory(“ROM”), a random access memory (“RAM”), an electrically erasableprogrammable read-only memory (“EEPROM”), a flash memory, a hard disk,or another suitable magnetic, optical, physical, or electronic memorydevice. The processor 300 executes software that is capable of beingstored in the RAM (e.g., during execution), the ROM (e.g., on agenerally permanent basis), or another non-transitory computer readablemedium such as another memory or a disc. The CP 130 also includesinput/output (“I/O”) systems that include routines for transferringinformation between components within the processor 300 and othercomponents of the CP 130 or external to the CP 130.

Software included in the implementation of the CP 130 is stored in thememory 305 of the processor 300, RAM 310, ROM 315, or external to the CP130. The software includes, for example, firmware, one or moreapplications, program data, one or more program modules, and otherexecutable instructions. The processor 300 is configured to retrievefrom memory and execute, among other things, instructions related to thecontrol processes and methods described below for the CP 130. Forexample, the processor 300 is configured to execute instructionsretrieved from the memory 140 for establishing a protocol to control theIPG 115.

One memory shown in FIG. 9 is memory 310, which can be a double datarate (DDR2) synchronous dynamic random access memory (SDRAM) for storingdata relating to and captured during the operation of the CP 130. Inaddition, a secure digital (SD) multimedia card (MMC) can be coupled tothe CP for transferring data from the CP to the memory card via slot315. Of course, other types of data storage devices can be used in placeof the data storage devices shown in FIG. 9.

The CP 130 includes multiple bi-directional radio communicationcapabilities. Specific wireless portions included with the CP 130 are aMedical Implant Communication Service (MICS) bi-direction radiocommunication portion 320, a WiFi bi-direction radio communicationportion 325, and a Bluetooth bi-direction radio communication portion330. The MICS portion 320 includes a MICS communication interface, anantenna switch, and a related antenna, all of which allows wirelesscommunication using the MICS specification. The WiFi portion 375 andBluetooth portion 330 include a WiFi communication interface, aBluetooth communication interface, an antenna switch, and a relatedantenna all of which allows wireless communication following the WiFiAlliance standard and Bluetooth Special Interest Group standard. Ofcourse, other wireless local area network (WLAN) standards and wirelesspersonal area networks (WPAN) standards can be used with the CP 130.

The CP 130 includes three hard buttons: a “home” button 335 forreturning the CP to a home screen for the device, a “quick off” button340 for quickly deactivating stimulation IPG, and a “reset” button 345for rebooting the CP 130. The CP 130 also includes an “ON/OFF” switch350, which is part of the power generation and management block(discussed below).

The CP 130 includes multiple communication portions for wiredcommunication. Exemplary circuitry and ports for receiving a wiredconnector include a portion and related port for supporting universalserial bus (USB) connectivity 355, including a Type-A port and a Micro-Bport; a portion and related port for supporting Joint Test Action Group(JTAG) connectivity 360, and a portion and related port for supportinguniversal asynchronous receiver/transmitter (UART) connectivity 365. Ofcourse, other wired communication standards and connectivity can be usedwith or in place of the types shown in FIG. 9.

Another device connectable to the CP 130, and therefore supported by theCP 130, is an external display. The connection to the external displaycan be made via a micro High-Definition Multimedia Interface (HDMI) 370,which provides a compact audio/video interface for transmittinguncompressed digital data to the external display. The use of the HDMIconnection 370 allows the CP 130 to transmit video (and audio)communication to an external display. This may be beneficial insituations where others (e.g., the surgeon) may want to view theinformation being viewed by the healthcare professional. The surgeontypically has no visual access to the CP 130 in the operating roomunless an external screen is provided. The HDMI connection 370 allowsthe surgeon to view information from the CP 130, thereby allowinggreater communication between the clinician and the surgeon. For aspecific example, the HDMI connection 370 can broadcast a highdefinition television signal that allows the surgeon to view the sameinformation that is shown on the LCD (discussed below) of the CP 130.

The CP 130 includes a touch screen I/O device 375 for providing a userinterface with the clinician. The touch screen display 375 can be aliquid crystal display (LCD) having a resistive, capacitive, or similartouch-screen technology. It is envisioned that multitouch capabilitiescan be used with the touch screen display 375 depending on the type oftechnology used.

The CP 130 includes a camera 380 allowing the device to take pictures orvideo. The resulting image files can be used to document a procedure oran aspect of the procedure. For example, the camera 380 can be used totake pictures of barcodes associated with the IPG 115 or the leads 120,or documenting an aspect of the procedure, such as the positioning ofthe leads. Similarly, it is envisioned that the CP 130 can communicatewith a fluoroscope or similar device to provide further documentation ofthe procedure. Other devices can be coupled to the CP 130 to providefurther information, such as scanners or RFID detection. Similarly, theCP 130 includes an audio portion 385 having an audio codec circuit,audio power amplifier, and related speaker for providing audiocommunication to the user, such as the clinician or the surgeon.

The CP 130 further includes a power generation and management block 390.The power block 390 has a power source (e.g., a lithium-ion battery) anda power supply for providing multiple power voltages to the processor,LCD touch screen, and peripherals.

As best shown in FIG. 1, the CP 130 is a handheld computing tablet withtouch screen capabilities. The tablet is a portable personal computerwith a touch screen, which is typically the primary input device.However, an external keyboard or mouse can be attached to the CP 130.The tablet allows for mobile functionality not associated with eventypical laptop personal computers.

In operation, the IPG 115 (which may also be an EPG) through the use ofthe implanted medical electrical leads 110, and specifically theelectrodes 150, stimulates neurons of the spinal cord 125. The IPG 115selects an electrode stimulating configuration, selects a stimulationwaveform, regulates the amplitude of the electrical stimulation,controls the width and frequency of electrical pulses, and selectscathodic or anodic stimulation. This is accomplished by a healthcareprofessional (e.g., a clinician), using the CP 130, setting theparameters of the IPG 115. The setting of parameters of the IPG resultsin a “program,” which is also referred to herein as a “protocol,” forthe electrode stimulation. Programming may result in multiple protocolsthat the patient can choose from. Multiple protocols allows, forexample, the patient to find a best setting for paresthesia at aparticular time of treatment.

With reference to FIG. 3, an electrode array 120 includes eightelectrodes 150B. The shown electrode array 120 has two columns and fourrows as viewed along a longitude length of the lead 110. Moregenerically, the lead includes cl columns and r rows, where cl is twoand r is four. When referring to a particular column, the column isreferred to herein as the j-th column, and when referring to aparticular row, the row is referred to as the i-th row.

Before proceeding further, it should be understood that not allelectrode arrays 120 are conveniently shaped as a simple matrix havingdefinite columns and definite rows. More complex configurations arepossible, which are referred to herein as complex electrode arrayconfigurations. The processes discussed herein can account for complexelectrode array configurations. For example, a representative arrayhaving cl columns and r rows for a complex electrode array configurationmay include “dummy” addresses having “null” values in the array. For aspecific example, an electrode contact may span multiple columns. Theresulting array may have a first address i, j representing the multiplecolumn electrode and a second address i, j+1 having a “null” value toaccount for the multiple columns of the multiple column electrode. Thisconcept can be expanded to even more complex arrangements. Accordingly,all electrode arrays 120 can be addressed as a matrix and it will beassumed herein that the electrode array 120 has been addressed as amatrix.

One process of selecting a best protocol for providing electricalstimulation includes four sub-processes. The processes are referred toherein as the impedance sweep of electrodes, the perception-thresholdsweep, the pain-coverage sweep, and the parameter fine adjustment. Theselecting of a best protocol occurs during a method of treating apatient with spinal cord stimulation. FIGS. 10-15 provide multiple flowdiagrams relating to the treatment of the patient 105 using the SCS 100.

Before proceeding further, it should be understood that the stepsdiscussed in connection with FIGS. 10-15 will be discussed in aniterative manner for descriptive purposes. Various steps describedherein with respect to the process of FIGS. 10-15 are capable of beingexecuted in an order that differs from the illustrated serial anditerative manner of discussion. It is also envisioned that not all stepsare required as described below.

With reference to FIG. 10, the patient 105 performs an initial visit(block 500). The clinician working with the patient 105 logs into the CP130 (block 505), and either selects a stored existing patient or adds anew patient to the CP 130 (block 510). The patient 105 then describeshis pain area (block 515). Using the patient's description, implantsites for a future surgery (block 520) are determined. The patient 105is then scheduled for trial surgery (block 525).

Referring now to FIG. 11, the patient 105 returns for trial surgery(block 530). After obtaining the previously stored patient information,the patient 105 again describes his pain area (block 535) and thelocation for lead implant sites can be confirmed. During the procedure,one or more leads 110 are placed in the patient 105 and their respectivelocations recorded in the CP 130 (block 540). Further, the camera 380can be used to capture images of the procedure, and capture/read barcodeserial numbers of the leads 110 (block 545). It also envisioned thatfluoroscopy/X-ray images can be recorded in the CP 130 as part of theprocedure. The result of blocks 540 and 545 is that the CP 130 has atype, location, orientation, and other contextual information relatingto the implanting of the lead 110. This provides a more robust andaccurate programming of the lead 110.

Next (block 550), the clinician selects the lead 121 for programming.The programming can be manual or assisted (block 555), both of which arediscussed below. The process can then be repeated for a next lead, orthe patient is then scheduled for post-op programming (block 560).

Referring again to block 555, the clinician either manually orautomatically programs the operation of the IPG 115 (which may also bean EPG) to provide electrical stimulation through the lead 110. Withmanual programming (FIG. 12, block 562), the clinician selects a lead(block 563), selects a stimulation polarity, which may be cathodalstimulation as it requires the least amount of current (voltage) toelicit a response (block 564), and manually adjusts pulse amplitude,frequency, and width of the electrical stimuli provided by theelectrodes 150 (block 565). The patient 105 typically provides verbalresponses to cues given by the clinician. This in particular isdifficult and time consuming during a permanent implant where thepatient has to be woken up from the general anesthesia and struggling tobe cognitive with often speech impediments. This process can be verytime consuming given the number of variables for each electrode/channel.The manual process also does not often result in a “best fit” forproviding electrical stimulation treatment and relies significantly onthe clinician's experience. The CP 130 saves the resulting protocol ofthe manually assisted programming (block 570).

With assisted programming (FIG. 13, block 572), the CP 130 establishes aprotocol for providing electrical stimuli to the patient 105. Morespecifically, the assisted programming first performs three sweeps ofthe electrodes 150 to result in a best selection of the electrodes 150for providing paresthesia. The first sweep (block 575) is an impedancesweep to determine a respective impedance between the IPG 115, connectedlead, each electrode 150, and tissue. The impedances are displayed onthe touch screen 375 and can be used by the clinician to help determinewhether an electrode 150 falls in between an accepted impedance range.The second sweep (block 580) is a perception-threshold sweep to find theminimum threshold stimulation sensed by the patient 105 for eachchannel/electrode 150. The second sweep (block 580) is aperception-threshold sweep to find the minimum threshold. In oneimplementation, the stimulation sensed by the patient 105 for eachchannel/electrode 150 is cathodal polarity with the IPG 115 can beingthe anode. For an EPG, a reference electrode may represent the cathodalanode. The values of the perception-threshold sweep are used tonormalize the initial sensation felt by the patient with each electrode150. The last sweep (block 585) is a pain-area sweep to identify theoptimal paresthesia electrodes to the pain area. Even more accurately,the pain-area sweep (block 585) eliminates contacts not reaching thepain area. The clinician can then repeat any of the sweeps and/or refinethe paresthesia to the patient (block 590). The refining of theparesthesia can include adjusting parameters of electric stimulationthrough the electrodes identified in block 585, surrounding an electrodeidentified in block 585 with anode or cathode blocks, or shifting apattern longitudinally or laterally, as is known in the art. Aftercompletion, the CP 130 saves the stimulation parameters (block 595).Further discussion regarding the CP 130 assisted programming will beprovided below.

Before proceeding further, it should be noted that the contextualinformation relating to the implanting of the lead 110 (from blocks 540and 545, above) can be used when programming the stimulation generator.That is, the contextual information can be used to exactly identify thelead 110, corresponding electrode array 120, orientation of the lead110, the placement of the lead 110, etc. The CP 130 automaticallyaccounts for this information when establishing the protocol. For aspecific example, the CP allows for an anatomically correct placement ofthe stimulation lead, if the surgeon chooses to orient the lead inanother way, such as antegrate or diagonal. The CP 130 accounts for thisplacement while performing the sweeps.

Referring now to FIG. 14, the patient 105 returns for post operationprogramming (block 600). Again, the patient 105 can describe the pain heis experiencing (block 605). The clinician then selects a lead 110 forprogramming (block 610) and performs manual or assisted programming forthe lead 110 (block 615). The patient is then scheduled for permanentsurgery (block 620).

With permanent surgery (FIG. 15, block 630), the operation is similar tothe trial surgery except the IPG 115 is typically inserted into thepatient. At block 635, the patient again describes his pain area (block635), which typically corresponds to the previously described pain area,and the location for lead implant sites can be confirmed. During theprocedure, one or more leads 110 are placed in the patient and recordedin the CP (block 640). Also, the IPG 115 is placed in the patient andrecorded in the CP 130 (block 640). The camera 380 can be used tocapture images of the procedure, capture/read barcode serial numbers ofthe leads 110, and capture/read barcode serial numbers of the IPG (block645). Further, fluoroscopy/X-ray images can be recorded in the CP 130,similar to the trial surgery, to help record the procedure (block 645).Next (block 650), the clinician selects the lead 110 for programming.The programming can be manual or assisted (block 655), as alreadydiscussed. The process can then be repeated for a next lead 110.

Accordingly, FIGS. 11-15 provide a process for treating a patient usingthe SCS 100. FIGS. 16-19 provide more detailed processes for performingcomputer assisted stimulation programming (CASP) using the CP 130. Thesteps discussed in connection with FIGS. 16-19 will be discussed in aniterative manner for descriptive purposes. Various steps describedherein with respect to the process of FIGS. 16-19 are capable of beingexecuted in an order that differs from the illustrated serial anditerative manner of discussion. It is also envisioned that not all stepsare required as described below.

FIG. 16 shows four exemplary sub-processes of the CASP process. Thefirst process (block 675) retrieves impedance values of the electrodes150 in a lead 110. In order to perform the process 675, the clinicianidentifies the lead 110 to the CP 130. The CP 130 knows the arrangementof the electrode array 120, as previously discussed, for the lead 110once the lead 110 is identified. One exemplary pseudo code and relatedflow chart for process 675 is shown below and in FIG. 17, respectively.This pseudo code assumes impedance between the contact Z_(i,j),connected lead, the can of the IPG 115, and tissue. However, otherimpedance combinations are possible between contacts Z_(i,j) andZ_(k,l),

where (k=1:r); (l=1:cl) and (k!=i) v (l!=j);

Require: EPG or IPG communication established 1: [Z_(i,j)] ← 0 >settingimpedance array to zero 2: r ← number of rows >number of contacts inlead latitudinally 3: cl ←number of columns >number of contacts in leadlongitudinally 4: for j = 1 to ≦ cl do 5:  for i = 1 to ≦ r do 6:  Z_(i,j) ← retrieve impedance of >computed by   contact i, j IPG/EPG 7: end for 8: end for 9: return [Z_(i,j)]

First, the array [Z_(i,j)] is set to zero, the number of rows r isidentified, and the number of columns cl is identified (block 695). Thearray [Z_(i,j)] corresponds to an array representing the electrode array120. The letter i represents the i-th row from 1 to r rows. The letter jrepresents the j-th column from 1 to j columns. As discussed previously,the representative array [Z_(i,j)] can represent many electrode arrays,including complex electrode array configurations having “dummy”addresses with “null” values. Therefore, not every address of the array[Z_(i,j)] may include a value. Returning to FIG. 17, the processperforms a first for-loop (block 700) for the columns and a secondfor-loop (block 705) for the rows of the array [Z_(i,j)]. The two loopsallow the process to progress through each electrode 150 of theelectrode array 120 to obtain an impedance value associated with eachchannel (block 710). Each impedance value relates to the impedancebetween the can 220 of the IPG 115, the connected lead, tissue, forexample, and a respective electrode 150. The process of FIG. 17 helps todetermine that the impedance values of lead 110 fall within acceptableranges, necessary to provide electrical stimulation to the nerves.

Referring back to FIG. 16, the second process (block 680) determines theperception-threshold values of the electrodes 150 in a lead 110. Duringthe process, the patient 105 provides feedback using the PFD 145 whenthe patient 105 senses a stimulation, such as a paresthesia sensation.One exemplary pseudo code and related flow chart for process 680 isshown below and in FIG. 18, respectively.

Require: EPG or IPG communication established Ensure: Impedance of eachcontact retrieved 1: [Cthr_(i,j)] ← 0 >setting contact stim thresholdarray to zero 2: r ← number of rows >number of contacts in leadlatitudinally 3: cl ←number of columns >number of contacts in leadlongitudinally 4: stimAmpStart ← sA_(start) >initial stim amplitude 5:stimAmpEnd ←sA_(end) >ending stim amplitude 6: stimAmpInc ←sInc >stimamplitude increment 7: stimAmp ←stimAmpStart >beginning stimulationamplitude 8: setSweepFrequencyForward >activation frequency 9:setStimFrequency >stimulation in pulses per seconds 10setStimDuration >duration of stimulation per contact 11: contactCounter← 0 12: Camp_(ij) ← 0 13: while stimAmp ≦ stimAmpEnd && contactCounter ≦totalContacts do 14:  for j = 1 to cl do 15:   for i = 1 to r do 16:   if Cthr_(i,j) ≠ 0 then >ignore contacts that already have thresholdsestablished 17:     continue 18:    end if 19:    listenForPatientResponse( ) 20:    Camp_(i,j) ← stimAmp forstimDuration >start stimulation 21:    if patientResponded then 22:    setSweepFrequencyReverse, startSweepReverse 23:     for revJ = jdownto revJ > 0 do 24:      for revI = i downto revI > 0 do 25:       ifCthr_(revI,revJ) ≠ 0 then>ignore contacts that already       havethresholds established 26:        continue 27:       end if 28:      Camp_(revI,revJ) ← stimAmp for stimDuration > start      stimulation 29:       if patientResponded then 30:       Cthr_(revI,revJ) ← Camp_(revI,revJ) 31:        contactCounter ++32:       endif 33:      end for 34:     end for 35:    end if 36:   setSweepFrequencyForward 37:   end for 38:  end for 39:  stimAmp+ ←stimAmpInc 40: end While 41: return [Cthr_(i,j)]

First the array [Cthr_(i,j)] is set to zero, the number of rows r isidentified and the number of columns cl is identified (block 720). Also,the initial stimulation amplitude stimAmpStart, the ending stimulationamplitude stimAmpEnd, and the stimulation amplitude increment stimAmpIncare identified; the variable stimAmp is set; and the countercontactCounter is set. Also, the forward sweep frequencysetSweepFrequencyForward, the stimulation frequency setStimFrequency,the duration of stimulation setStimDuration are established and thestimulation Camp_(ij) is tuned off (block 720).

The CASP process performs a while-loop to determine theperception-threshold values of the electrodes 150. The while-loop isperformed while the stimAmp value is less than the threshold stimAmpEndand each contact does not have a perception-threshold value (block 724).The while-loop includes two for-loops: a first for-loop for the columnsof the array (block 728) and a second for-loop for the rows of the array(block 732). The two loops allow the CASP process to progress througheach electrode 150 of the electrode array 120. While performing theloops, the process determines whether the perception array does not havea perception value for the i-th row and the j-th column (block 736). Ifthe array location has a perception-threshold value, then the processreturns to block 732. Otherwise, the process continues.

Before proceeding further, it should be noted that the CASP processautomatically and systematically progress through the electrodes 150. Inaddition, as shown by block 736, the CASP process “skips” or passes overan electrode C_(i,j) once a perception threshold Cthr_(i,j) isidentified for the electrode 150. However, the sweeping of theelectrodes 150 is still automated and systematic even when this skipprocess occurs.

Referring now to block 740, the contact amplitude Camp_(i,j) is set tothe stimulation amplitude stimAmp, the process pauses for a duration. Atthe same time the CASP is monitoring for a patient response. For theimplementation discussed herein, the stimulation amplitude is a currentamplitude. However, a voltage amplitude or other variable (pulse shape,frequency, width, etc.) can be used and adjusted in place of the currentamplitude. If the patient 105 feels a sensation, then they providefeedback to the CP 130 via the PFD 145 (block 744). If a patient 105response is detected then the process proceeds to block 748. Otherwise,the CASP process continues to proceed through the for-loops.

When a patient 105 provides feedback indicating a response, a reversefrequency is set (block 748) and the sweep is reversed (starting atblock 752). More specifically, for the CASP process discussed herein,the process proceeds quickly through the electrode array 120 and adelayed reaction from the patient 105 is expected. By performing areverse sweep, the CASP process more accurately confirms a response. TheCASP process initiates two for-loops 752-756 in a reverse sweepdirection. While performing the reverse sweep, the process “skips” orpasses over electrodes 150 having perception thresholds (block 760). Thecontact amplitude Camp_(revI,revJ) is set to the stimulation amplitudestimAmp, the process pauses for a duration (block 764). If a patient 105feels a sensation, then they provide feedback to the CP 130 with the PFD145. If a patient 105 response is detected (768), then the processproceeds to block 772. Otherwise, the CASP process continues to proceedthrough the for-loops 752 and 756. At block 772, theperception-threshold value is set for Cthr_(revI,revJ) and thecontactCounter increments.

Upon completion of the perception threshold sweep, perception thresholds[Cthr_(i,j)] are established for each contact 150. The values of theperception-threshold sweep are used to normalize the initial sensationfelt by the patient with each channel/electrode 150.

Referring again to FIG. 16, the third process (block 685) performs apain-area sweep to determine the best electrode(s) 150 for stimulatingneurons to the affected pain area. During this process, the patient 105again provides feedback using the PFD 145 when the patient 105 senses adefined stimulation. One exemplary pseudo code and related flow chartfor process 685 is shown below and in FIG. 19, respectively.

Require: [Cthr_(i,j)] ≠ 0 >threshold array is not empty Ensure:stimulation contacts that cover pain 1: [Parea_(i,j,k)] ← false 2:setSweepFrequencyForward >activation frequency 3:setStimFrequency >stimulation in pulses per seconds 4:setStimDuration >duration of stimulation per contact 5: r ← number ofrows >number of contacts in lead latitudinally 6: cl ← number ofcolumns >longitudinal columns 7:  for: j = 1 to ≦ r do 8:   for i = 1 to≦ cl do 9:    listenForPatientResponse( ) 10:    Camp_(i,j) ← Cthr_(i,j)for stimDuration >start stimulation 11:    if patientResponse then 12:    k ← patientPainRegion > patient locates where pain     region is 13:    PainA_(i,j,k) ← true 14:    end if 15:  end for 16: end for 17:return [Parea_(i,j,k)]

First, the forward sweep frequency setSweepFrequencyForward, thestimulation frequency setStimFrequency, the duration of stimulationsetStimDuration are established and the stimulation Camp_(ij) is tunedoff (block 800). Next, the number of rows r is identified, the number ofcolumns cl is identified, and the array [Parea_(i,j,k)] is set to false(block 802). The CASP process then automatically and systematicallyprogresses through the electrodes 150. A first for-loop (block 805) forthe columns of the area and a second for-loop (block 810) for the rowsof the array are swept. While performing the loops, the electrode Camp,is set to the threshold Cthr_(i,j), which may be set from the priorperception-threshold sweep (block 815). The process pauses for aduration. If the electrode 150 stimulates neurons related to the painarea, then the patient 105 provides feedback to the CP 130 via the PFD145. If a patient 105 response is detected (block 820) then the processproceeds to block 825. Otherwise, the CASP process continues theautomated and systematic sweep through the electrodes 150. At block 825,the patient identifies the paresthesia area (k) the stimulation isreaching and contact i,j in the array [Parea_(i,j,k)] is set to true.

In some implementations, when a patient 105 provides feedback indicatinga response to the stimulation that reaches the pain area, the sweep canbe repeated multiple times over. The resulting multitude pain areaarrays can be compared to verify consistent patient response. However,the exemplary process shown in FIG. 19 does not include the repeatedsweep.

At the end of the pain-area sweep, the CP 130 identifies the bestelectrode(s) 150 for stimulating neurons to the affected pain area,i.e., to provide paresthesia to the affected pain areas. It isenvisioned that the process of performing the perception thresholdsweeps and pain area sweeps can be performed in less than thirtyminutes, and preferably in less than ten minutes. The time can varybased on the sweep speed and delay times used during the sweep. The CP130 can then isolate the resulting best electrodes and refine thestimulation parameters (amplitude, frequency, pulse width) to result inan optimal pattern as has been previously done in prior SCS systems(block 690 of FIG. 16).

Thus, the invention provides, among other things, useful and systems andmethods for providing electrical stimulation to a neural tissue of apatient.

The discussions above pertain to systems and methods of providing CASPaccording to some embodiments of the present disclosure. Discussed beloware systems and methods of providing CASP according to some alternativeembodiments of the present disclosure. Hereinafter, the CASP processdiscussed above is referred to as conventional CASP, and the CASPprocess discussed below is referred to as alternative CASP. For reasonsof consistency and clarity, similar elements and components appearing infigures pertaining to conventional CASP and alternative CASP are labeledthe same.

Referring now to FIG. 20, a flowchart of a simplified method 900 ofperforming alternative CASP. Similar to the embodiments of the CASPprocess discussed above, the alternative CASP method includes threedifferent sweeps. The first sweep is an impedance sweep in a step 910,in which an impedance sweep is performed to check the electrical and/orphysical connections for all contacts on the lead. In variousembodiments, the impedance sweep in step 910 is similar to the impedancesweep in block 575 of the conventional CASP discussed above withreference to FIG. 13. By applying an electrical current and measuringthe corresponding voltage (or vice versa) for each contact, therespective impedance for each contact is calculated. If the impedancefalls within an acceptable range, the connection associated with thatcontact is deemed to be good. Otherwise, if the impedance is too high ortoo low, it may indicate an open circuit or short circuit condition, andfurther investigation or troubleshooting may be needed, since open orshort circuit conditions are not desirable for a lead and should becorrected. The impedance values may also be visually displayed on ascreen of the clinician programmer.

Still referring to FIG. 20, the method 900 of performing alternativeCASP includes a step 920, in which a plurality of perception thresholdsweeps is performed to determine the perception threshold stimulationcurrent for a plurality of contacts on the lead. For example, theplurality of contacts for which the perception threshold sweeps shouldbe performed are the contacts that have been deemed to be “good”contacts based on the impedance sweep of step 910. In other words, the“bad” contacts that have connection problems (determined based onimpedances that are too high or too low from the impedance sweep) areexcluded from the perception threshold sweep.

The method 920 is the second sweep of the alternative CASP process. Thestep 920 shares some similarities with the perception threshold sweep inblock 580 of the conventional CASP discussed above with reference toFIG. 13, but is different in certain other aspects. For example, thegoal for both the conventional CASP and the alternative CASP is todetermine, for each contact, the amount of stimulation current thatcauses the patient to feel a stimulation sensation.

However, conventional CASP and alternative CASP implement differentalgorithms to determine the perception threshold for each contact. Asdiscussed above, conventional CASP performs a “linear” sweep for allcontacts. That is, the stimulation current is ramped up from a low value(e.g., zero) to a high number for each contact. During this process, thepatient will provide feedback—for example by engaging the PFD 145discussed above with reference to FIG. 1—to let the healthcareprofessional know when the perception threshold is reached. In otherwords, the patient will inform the healthcare profession when he/shefinally begins to “feels some amount of stimulation” when a certainstimulation current amplitude is reached. This procedure is performedfor each contact one by one, until the perception threshold isdetermined for all the contacts.

Unlike the conventional CASP, the alternative CASP employs asub-dividing approach to quickly separate the contacts into smaller andsmaller groups in order to identify the one or more contact of interest.To explain this approach in more detail, referring now to FIGS. 21-25,which are simplified diagrammatic illustrations of an example lead 1000according to some embodiments. The lead 1000 has contacts 1010A-1010L(also referred to as electrodes). For all the contacts 1010, stimulationcurrent is simultaneously ramped up from zero slowly, for example bysmall increments (e.g., 0.05 mA or 0.1 mA) with pauses in between eachincrement (e.g., a few seconds or longer). In some embodiments, theexact configurations for the ramping up process may be set by ahealthcare professional.

As this ramping up process takes place, the patient is asked to providefeedback, for example by engaging the PFD 145 discussed above. In someembodiments, the patient's engagement of the PFD 145 will generate asignal (e.g., generated by the PFD 145) that will be sent to theclinician programmer. This signal informs the clinician programmer thata perception threshold has been reached for at least one of the contactson the lead, and therefore the current ramping process should betemporarily paused until such contact can be identified. Alternatively,a human assistant may also be employed instead of, or in addition to,the PFD 145 to help the patient provide feedback.

In any case, when the patient indicates that he/she is beginning to feelsome stimulation sensation, the value of the stimulation currentamplitude that produced the stimulation sensation is recorded. Thisvalue may be stored in the local memory storage of the clinicianprogrammer, in the IPG, or in a server (i.e., cloud) located remotelyfrom the clinician programmer. In addition, the contacts 1010A-1010L onthe lead 1000 are divided into a plurality of sections or groups, forexample into two sections 1020A (containing contacts 1010A-1010F) and1020B (containing contacts 1010G-1010L), as shown in FIG. 21. Thecontacts 1010A-1010 l are then activated one section or group at a timeby applying the recorded stimulation current to all the contacts in thatactivated section, and the patient is asked if the stimulation sensationis still being felt.

For example, suppose that the stimulation current that produced thestimulation sensation for the patient is 1.5 mA. The contacts1010A-1010F in the section 1020A are then turned on at 1.5 mA, while thecontacts 1010G-1010L are turned off. The patient provides feedback byengaging or not engaging the PFD 145 to indicate whether or not thestimulation sensation is still being felt. If the PFD 145 is engaged,that indicates the patient feels the stimulation sensation while thesection 1020A is activated, which means the contact (or contacts)producing the stimulation sensation resides in section 1020A. If the PFD145 is not engaged, that indicates the patient does not feel anystimulation sensation while the section 1020A is activated, which meansthe contact (or contacts) producing the stimulation sensation resides insection 1020B. In any case, based on the patient's feedback, the sectionin which the stimulation-sensation-producing contact (or contacts)resides is investigated further.

For the purposes of providing an example, referring to FIG. 22, supposethe patient feels a stimulation sensation when the section 1020A isactivated. Thus, the section 1020B is temporarily crossed-off (i.e., notbeing considered for further investigation at this time). This isvisually represented herein by the shading of the section 1020B in FIG.22. The section 1020A is of interest (i.e., likely containing thecontact that caused the stimulation sensation), and it is furthersub-divided into sections 1020C (containing contacts 1010A/C/E) and1020D (containing contacts 1010B/D/F). The contacts 1010A/C/E in thesection 1020C are then turned on at 1.5 mA, while the contacts 1010B/D/Fare turned off. Again, the patient provides feedback by engaging or notengaging the PFD 145 to indicate whether or not the stimulationsensation is still being felt. If the PFD 145 is engaged, that indicatesthe patient feels the stimulation sensation while the section 1020C isactivated, which means the contact that caused the stimulation sensationresides in section 1020C. Otherwise, the contact that caused thestimulation sensation resides in section 1020D.

Suppose the patient does not engage the PFD 145 while the section 1020Cis activated but does engage the PFD 145 while the section 1020D isactivated. Therefore, the section 1020D is investigated further, and thesection 1020C is crossed off, as shown in FIG. 23. At this point, thethree contacts 1010B/D/F does not necessarily need be divided anymore,since three contacts cannot be evenly divided by two. In other words,the sub-division algorithm discussed herein may round down if asub-division results in a fraction or a decimal: in this case, 3 dividedby 2=1.5, which is rounded down to 1. In other words, each contact1010B/D/F may be individually tested to determine whether the contact isthe contact that produced the stimulation sensation, and if so, thatcontact is assigned 1.5 mA as the perception threshold. For example, thepatient may confirm that both the contacts 1010B and 1010D produced thestimulation sensation, but the contact 1010F did not. Thus, theperception threshold for contacts 1010B and 1010D are assigned to be 1.5mA in this example.

Alternatively, as shown in FIG. 24, the contacts 1010B/D/F in thesection 1020D may still be sub-divided again into a section 1020Econtaining any of the two contacts (e.g., contacts 1010B/D) and anothersection 1020F containing the remaining contact (e.g. contact 1010F). Theprocedure discussed above is repeated for these sections 1020E and1020F, until the patient can confirm which one or more of the contactsactually produced the stimulation sensation. Based on the same examplediscussed above, the patient should confirm that the contacts 1010B and1010D are the contacts that caused the stimulation sensation, and 1.5 mAis assigned as the perception threshold for these contacts.

In any case, after the perception threshold for contacts 1010B and 1010Dare determined, contacts 1010B and 1010D are “eliminated” or “excluded”from the subsequent alternative CASP analysis. In other words, thecontacts 1010B and 1010D are no longer turned on, since theircorresponding perception threshold is already known (i.e., 1.5 mA inthis example). For the remaining contacts 1010A, 1010C, and 1010E-1010L,the ramping up of the stimulation current is resumed up from a currentamplitude greater than the perception threshold identified for thecontacts 1010B and 1010D. In this example, since the perceptionthreshold for the contacts 1010B and 1010D is determined to be 1.5 mA,the ramping up for the remaining contacts may start from a currentslightly greater than 1.5 mA, for example 1.6 mA.

The ramping up process may continue by incrementing the stimulationcurrent 0.1 mA at a time (or by another suitable small increment step),until the patient feels a stimulation sensation again. At that point,the remaining contacts are sub-divided into a plurality of sections andtested again in a similar process as discussed above, in order to narrowdown the contact that caused the stimulation sensation. For example,after a plurality cycles of sub-dividing and testing processes, thecontacts 1010A and 1010C are determined to have a perception thresholdat 1.8 mA. Thereafter, the contacts 1010A and 1010C are eliminated fromthe remaining alternative CASP analysis, along with the contacts 1010Band 1010D that have been previously eliminated.

For the remaining contacts 1010E-1010L, the process discussed above isrepeated again and again a plurality of times, until the perceptionthreshold for every contact has been determined. For reasons ofsimplicity, the details of these processes are not discussed herein,though it is understood that the perception threshold determination foreach contact may involve one or more stimulation ramping andsub-dividing processes for the contacts. It is also understood thatalthough the description of the alternative CASP process may appear tobe lengthy and time-consuming, in reality it can be performed quitequickly. This is at least in part due to the fact that the currentramping and contact sub-dividing processes in the alternative CASPanalysis are computer-automated, for example by the electronicprocessors and memory in the clinician programmer. In some embodiments,the entire alternative CASP process may be completed in a few minutes.This is beneficial, because the CASP process is often performed duringexploratory surgery or permanent implant surgery, while the patient isunder anesthesia. Therefore, the fast performance of the alternativeCASP process may lead to better patient satisfaction and/or greateraccuracy for the determination of the perception thresholds for thecontacts.

It is understood that the sub-dividing process discussed above withreference to FIGS. 21-25 is merely a simplified example of how aplurality of contacts on a lead may be divided and sub-divided intosmaller and smaller groups in order to zero in on the contact(s) ofinterest. For example, the dividing and sub-dividing process in thisexample utilizes a binary division algorithm, which attempts to dividethe contacts into two groups of approximately equal number of contactsby each division. In other words, the contacts are divided by two inmost situations (until it is not feasible to do so anymore).

In other embodiments, the contacts may be divided and sub-divided bydifferent algorithms. For example, referring to FIG. 25, as the patientfirst feels stimulation as the current is being ramped up, the contacts1010A-1010L may be divided into four quadrant sections 1020G, 1020H,1020I, and 1020J each containing their respective contacts. The quadrantsections 1020G/H/I/J may then be activated one section at a time tolocate the quadrant section in which the contact that caused thestimulation sensation resides. This process may be repeated a number oftimes until the contact that caused the stimulation sensation islocated, and the amount of stimulation current that caused thestimulation sensation is then assigned as the perception threshold tothat contact. Similarly, the contacts may be divided and sub-dividedinto any other number of sub-groups in other embodiments. For example,in some embodiments, as the stimulation current is being ramped upinitially, once the patient indicates that he/she feels a stimulationsensation, the ramping is paused, and then each contact is interrogatedindividually to determine if that contact was the one that caused thepatient to feel the stimulation sensation. Alternatively stated, it isas if the contacts are divided into a plurality of “groups” that eachcontain just one respective contact, rather than groups that containmore than one contact. Furthermore, in certain embodiments, eachsub-division may be performed differently than previous sub-divisions.For example, a group of contacts may first be divided into two groups,and then each group may be subsequently divided into three sub-groups,and each sub-group may then be subsequently divided into foursub-sub-groups, etc.

It is also understood that there may be an upper limit or maximum levelas to how much the stimulation current can be ramped up. For example,for the patient's safety, the upper limit for the stimulation currentmay be set at 15 mA (or another suitable number). If the ramping upprocess has been performed such that the stimulation current is now at15 mA, and one or more contacts still have not caused the patient tofeel any stimulation sensation, then the ramping up process will stopanyway, and the upper limit for the stimulation current (15 mA in thisexample) will be assigned as the perception threshold for thesecontacts. The rationale is that it can be safely assumed that thepatient can be stimulated with these contacts driven by stimulationcurrents at the upper limit, and the patient will not experience anydiscomfort as a result of it. For the rest of the contacts that haveperception thresholds lower than the upper limit, however, they shouldbe driven by stimulation currents equal to their respective perceptionthresholds when activated.

Referring back to FIG. 20, the method 900 of performing alternative CASPincludes a step 930, in which one or more pain area sweeps are performedto locate the contacts that offer the best stimulation for the patient'spain areas. This is also known as a Paresthesia sweep, since Paresthesiarefers to the feeling of stimulation in the areas of pain. The step 930is the third sweep of the alternative CASP process. In some embodiments,the pain area sweep of step 930 may be substantially similar oridentical to the pain area sweep in block 585 of the conventional CASPprocess shown in FIG. 13. In other embodiments, the step 930 shares somesimilarities with the block 585 of the conventional CASP process, but isdifferent in certain other aspects. For example, the step 930 mayperform the pain area sweep using a division algorithm similar to thealgorithm used to perform the perception threshold sweep.

For example, in an embodiment using a binary division, the contacts aredivided into two (or another suitable number) different sections orgroups. For each section, stimulation currents are applied to each ofthe contacts in that section, where the stimulation current amplitude isset to the respective perception threshold that had been determined forthat contact. The patient is then asked to provide feedback (e.g., viaengagement with the PFD 145) as to whether or not he/she feels relief atthe target area of pain (e.g., knee, shoulder, etc.). Based on thepatient's feedback, the contacts in the section/group of interest aresub-divided one or more times into smaller and smaller sections/groups,until the target contacts that offered pain relief are identified. Inother words, the patient feels Paresthesia when these target contactsare driven by the stimulation current at their respective perceptionthresholds.

Again, the division or sub-division of the contacts in the pain areasweep process need not be binary, as the contacts may be divided intoany other number of groups containing any suitable number of contacts ina manner similar to that discussed above with reference to theperception threshold sweep process. In the alternative embodimentdiscussed above where the contacts are separated individually (i.e.,into “groups” that each contain just a single respective contact), thepain area sweep process may be performed by activating each of thecontacts by applying their respective perception threshold stimulationcurrent, and determining whether the patient experiences Paresthesiawhen such contact is activated. In this manner, the pain area sweepinvolves a single division process (i.e., dividing the group of contactsinto individual contacts), and therefore no further sub-division isnecessary.

In any case, once the target Paresthesia-producing contacts areidentified, they may then be saved (e.g., in a local or remote memorystorage) and thereafter used to develop a treatment protocol forproviding therapeutic electrical stimulation to treat the patient. Insome embodiments, the treatment protocol may be developed manually bythe healthcare professional. For example, the healthcare professionalmay manually configure the stimulation parameters such as stimulationcurrent amplitude, frequency, pulse width, etc., for these targetcontacts. In some other embodiments, the clinician programmer may beable to automatically develop one or more treatment protocols based onthe identified target contacts.

In the perception threshold sweep and/or the pain area sweep discussedabove, the dividing and sub-dividing processes may be performeddynamically (i.e., “on the fly”) in some embodiments. For example, thedividing and sub-dividing algorithms will continue to divide theremaining contacts by a factor of two (or another number) in each cycle,until a fraction or a decimal is reached (meaning the remaining contactscan no longer be divided in equal numbers). At that point, the number ofdivided contacts is rounded down. For example, if three contacts areremaining, the contacts will be sub-divided into three individualcontacts (3/2=1.5, which is rounded down to 1). As another example, iffive contacts are remaining, the contacts may be sub-divided into agroup containing two contacts and another group containing threecontacts. Of course, alternative algorithms may be used to carry out thesub-division processes.

In some other embodiments, the lead contact configuration information(e.g., information regarding the number of contacts on the lead, and howthese contacts are arranged) is retrieved by the clinician programmer,for example via telecommunications conducted between the clinicianprogrammer and the IPG before the alternative CASP process is performed.The clinician programmer may store a look-up table in its local memory(or remotely) that describes how the contact division and sub-divisiondiscussed above should be performed for each type of lead. In thismanner, the contact division and sub-division need not necessarily beperformed dynamically, but it may be performed according to a predefinedarrangement based on the lead contact configuration.

As discussed above, a portable electronic device such as a clinicianprogrammer may be used to carry out various aspects of the CASP andalternative CASP processes discussed above. FIGS. 26-30 are examplescreenshots of a user interface 1200 for visually representing differentaspects of the CASP and alternative CASP processes according to thevarious aspects of the present disclosure. In some embodiments, the userinterface 1200 may be displayed on a screen of a clinician programmer.In some embodiments, the screen may be a capacitive or resistivetouch-sensitive screen. In other embodiments, the screen may be anon-touch-sensitive screen, for example a Liquid-Crystal Display (LCD)screen, a Light-Emitting Diode (LED) screen, or a Cathode Ray Tube (CRT)screen. In yet other embodiments, the user interface 100 may bedisplayed on a programmer and an external monitor simultaneously, forexample in accordance with U.S. patent application Ser. No. 13/600,875,filed on Aug. 31, 2012, entitled “Clinician Programming System andMethod”, the disclosure of which is hereby incorporated by reference inits entirety. As such, both the healthcare provider and the patient areable to view the user interface at the same time.

Referring to FIG. 26, the user interface 1200 illustrates an examplelead 1210 (or a virtual representation thereof). In this example, thelead 1210 is a single column lead and contains twelve contacts1220-1231. Of course, this is just an example, and other types of leadsmay be implemented in alternative embodiments. The user interface 1200also illustrates a CASP programming window 1250. The CASP programmingwindow includes virtual buttons 1260-1266. Each of the virtual buttons1260-1266 may be user-engage-able, for example by a touch input (e.g.,either with a finger or a stylus), or a hover input, or by a mouseand/or keyboard.

In this example, the virtual button 1260 is a “start/stop” button thatwhen engaged, will execute the CASP or alternative CASP processesdiscussed above. The virtual button 1261 is a “pause” button that whenengaged, will pause the CASP or alternative CASP processes discussedabove. The virtual button 1262 functions similar to a “debug” command ina computer programming environment. In other words, when the virtualbutton 1262 is engaged, it temporarily pauses the CASP or alternativeCASP processes and allows the user to “single-step” through theexecution of the CASP or alternative CASP processes. Thus, theengagement of the virtual button 1262 allows the execution of one of thesweep processes to be paused. The user may then advance the pace of thesweep at his/her own discretion.

The virtual buttons 1263-1265 correspond to the impedance sweep, theperception threshold sweep, and the pain area sweep (i.e., theParesthesia sweep) sweep discussed above, respectively. When the virtualbutton 1260 is engaged to begin the sweeping processes, the impedancesweep would first be performed, followed by the perception thresholdsweep, and then the pain area sweep. While each type of sweep isoccurring, the corresponding virtual button 1263-1265 may be highlightedto indicate the type of sweep that is occurring.

In the example shown in FIG. 26, the impedance sweep has alreadyoccurred, and now the perception threshold sweep is underway, asindicated by the highlighting of the virtual button 1264. Also in thisexample, the impedance sweep has identified the contacts 1223 and1228-1229 as “bad” contacts, which indicate connection problems. Assuch, these contacts 1223 and 1228-1229 are excluded from the perceptionthreshold sweep (and thereafter the pain area sweep). To remind the userof their exclusion, the contacts 1223 and 1228-1229 may be visuallydistinguished from the rest of the contacts. For example, the contacts1223 and 1228-1229 may be colored or shaded differently than the rest ofthe contacts.

As discussed above, the perception threshold sweep begins by ramping upthe stimulation current for a plurality of contacts. Had the impedancesweep identified no “bad” contacts, all contacts 1220-1231 would havebeen included in this ramping up process. However, in this example, theplurality of contacts whose currents are being ramped up includes thecontacts 1220-1222, 1224-1227, and 1230-1231, but not the “bad” contacts1223, 1228, and 1229. In some embodiments, the contacts 1220-1222,1224-1227, and 1230-1231 that are undergoing the ramping up process arevisually distinguished by flashing. In other embodiments, the visualdistinction of these contacts may be a particular coloring or shadingthat is only present while the ramping up process is underway. Note thatin the conventional CASP process, each contact may be ramped upindividually, and therefore only one contact may be flashing (orotherwise visually distinguished) at a time. For reasons of simplicity,this is not specifically illustrated herein.

Referring now to FIG. 27, after the perception thresholds have beendetermined for one or more of the plurality of contacts 1220-1222,1224-1227, and 1230-1231 (either through the conventional CASP processor the alternative CASP process), these contacts may also be given adifferent visual distinction. In this example, the respective perceptionthresholds for contacts 1220-1221, 1224-1227, and 1230-1231 have beendetermined, and therefore these contacts may stop flashing and may begiven a color (e.g., green) different from the color (e.g., yellow) ofthe “bad” contacts 1223 and 1228-1229 that were excluded from theperception threshold sweep.

Furthermore, the numeric values of the perception thresholds may also bevisually displayed next to their respective contacts 1220-1221,1224-1227, and 1230-1231. In this example, the numeric values of theperception thresholds for the contacts 1220-1221, 1224-1227, and1230-1231 are (in mAs) 0.55, 0.55, 0.90, 0.70, 0.65, 0.60, 0.75, 0.80,and 0.85, respectively. In addition, the perception threshold for thecontact 1222 is still to be determined, and thus the stimulation currentis still being ramped up for the contact 1222. The value of thestimulation current during the ramping up process may also be displayedadjacent to the corresponding contacts, in this case 0.90 mA for thecontact 1222.

Referring now to FIGS. 28-29, after the perception threshold sweep iscompleted, the pain area sweep (also interchangeably referred to as theParesthesia sweep hereinafter) starts. In a conventional CASP processillustrated in FIG. 28, since the contacts are swept individually, eachactivated contact will be visually distinguished one at a time, forexample by individually flashing each activated contact (or giving aparticular color or shading to the activated contact). In this example,the contact 1222 is activated to determine whether it producesParesthesia for the patient, and therefore the contact 1222 is flashing.

In an alternative CASP process illustrated in FIG. 29, the contacts aredivided into groups and then swept one group at a time. For example, thecontacts 1220-1222 and 1224-1225 are grouped together and are allactivated to their respective perception thresholds. These activatedcontacts 1220-1222 and 1224-1225 may be visually distinguished, forexample by collectively flashing as a group or being collectively givena particular color or shading. Meanwhile, the rest of the contacts(either “bad” contacts or inactive contacts) are not flashing, whichindicates that they are not being activated. As is shown in FIGS. 28-29,the numeric values of the perception thresholds for the contacts may bedisplayed adjacent thereto during the Paresthesia sweep as well.

Referring now to FIG. 30, suppose that, after the completion of the painarea sweep or Paresthesia sweep, the contacts 1224 and 1225 have beenidentified as the Paresthesia-producing contacts. Thus, the contacts1224 and 1225 may be visually distinguished from the rest of thecontacts. In this example, the Paresthesia-producing contacts 1224-1225are colored in blue, whereas the contacts (i.e., contacts 1220-1222,1226-1227, and 1230-1231) that do not produce Paresthesia but whoseperception thresholds have been determined are colored in green, and the“bad” contacts that did not undergo the CASP or alternative CASPprocesses are colored in yellow. These visual distinctions help remindthe user of the characteristics or properties of each contact, as do therespective perception threshold values displayed next to these contacts.In this manner, the user is provided with a “visual map” or “visuallandscape” that helps him/her to quickly comprehend the state of thecontacts on the lead. However, the particular colors, shading, orflashing discussed above are merely examples, and different manners ofvisual distinctions may be implemented in alternative embodiments.

It is also understood that the execution of the three sweeps (impedance,perception threshold, and pain area) are sequential. In other words, theimpedance sweep should be executed first, followed by the perceptionthreshold sweep, and then the pain area sweep. The engagement of thevirtual button 1260 may automatically trigger the execution of thesesweeps, beginning with the impedance sweep. With reference to FIGS.26-30, it can be seen that the virtual buttons 1263-1265 are highlightedwhen their corresponding sweep is being executed. In addition, prior tothe completion of a particular sweep, the virtual button correspondingto a subsequent sweep is grayed-out and cannot be engaged. For example,as shown in FIG. 26, since the perception threshold sweep is stillunderway, the virtual button 1265 corresponding to the Paresthesia sweepis grayed-out and cannot be engaged by the user. This helps reduce userconfusion or error arising from attempting to perform a sweep out oforder.

However, after a particular sweep has been completed, the user mayengage the corresponding virtual button to repeat such sweep. Forexample, as shown in FIGS. 26-30, since the impedance sweep has alreadybeen performed, the virtual button 1263 corresponding to the impedancesweep is not grayed-out, and a user engagement of the virtual button1263 may repeat the impedance sweep. Similarly, as shown in FIG. 29 or30, the perception threshold sweep has already been completed. Thus, thevirtual button 1264 corresponding to the perception threshold sweep isnot grayed out, and a user engagement of the virtual button 1264 mayrepeat the perception threshold sweep. In addition, as discussed above,the user may engage the virtual button 1262 to enter a debug-like modewhere the execution for any sweep may be temporarily paused and steppedthrough one step at a time.

When all the sweeps have been completed and the targetParesthesia-producing contacts have been identified, the virtual button1266 may also be used to save the information gathered through the CASPor alternative CASP processes. Such information may include, but is notlimited to: which contacts are “good” or “bad”, the perceptionthresholds for each “good” contact, and which contacts are theParesthesia-producing contacts. This information may be saved locally onthe clinician programmer or remotely to a server. This information mayalso be electronically transferred to the IPG later, for example in theform of an automatically-generated stimulation program that utilizes theinformation to configure its stimulation parameters. The user may alsobe allowed to manually adjust the information gathered herein byengaging the virtual button 1266. Alternatively, the user may discardthe information and begin a new round of CASP or alternative CASP.

FIG. 31 is a flowchart of a method 1400 for performing the alternativeCASP process discussed herein. The various steps of the method 1400 maybe performed by one or more electronic processors, for example theelectronic processors of a clinician programmer.

The method 1400 includes a step 1410 of ramping up a stimulation currentfor a plurality of contacts on a lead that is configured to be implantedinside, or attached to, a patient. In some embodiments, the ramping upcomprises ramping up the stimulation current from zero. In someembodiments, the ramping up comprises ramping up the stimulation currentfor all contacts on the lead.

The method 1400 includes a step 1420 of receiving patient feedback whilethe stimulation current is being ramped up. The patient feedbackindicates that the patient is beginning to feel stimulation. In someembodiments, step 1420 is carried out at least in part by an electronicpatient feedback device. For example, the patient feedback is receivedby the electronic patient feedback device, which then reports thepatient feedback to the clinician programmer.

The method 1400 includes a step 1430 of, in response to receiving thepatient feedback: recording an amplitude of the stimulation current thatresulted in the patient feedback; and dividing the plurality of contactsinto a plurality of groups.

The method 1400 includes a step 1440 of activating the plurality ofcontacts one group at a time. The respective amplitudes of thestimulation currents of the contacts in each group are set to therecorded amplitude. In some embodiments,

The method 1400 includes a step 1450 of determining, for each activatedgroup of contacts, whether the patient is able to feel stimulation whilesaid group of contacts is being activated. In some embodiments, the step1450 comprises receiving further patient feedback via the electronicpatient feedback device while at least one of the groups of contacts isbeing activated.

The method 1400 includes a step 1460 of, in response to a determinationthat a target group of contacts causes the patient to feel stimulation:sub-dividing the target group of contacts into a plurality ofsub-groups.

The method 1400 includes a step 1470 of repeating the dividing, theactivating, the determining, and the sub-dividing one or more timesuntil one or more contacts that caused the patient to feel stimulationare identified.

The method 1400 includes a step 1480 of assigning the recorded amplitudeas a perception threshold for the identified one or more contacts.

It is understood that the method 1400 may include additional steps thatmay be performed before, during, or after the steps 1410-1480 discussedabove. For example, in some embodiments, the method 1400 furtherincludes the following steps: before the ramping up, performing animpedance sweep for all contacts on the lead; determining which contactshave connections problems based on the impedance sweep; and selectingcontacts that do not have connection problems as the plurality ofcontacts for which the ramping up is to be performed.

As another example, in some embodiments, the method 1400 furtherincludes the following steps: repeating the ramping up, the receiving ofthe patient feedback, the recording of the amplitude, the dividing, theactivating, the determining, the sub-dividing, the repeating, and theassigning one or more cycles until respective perception thresholds havebeen assigned for all contacts in the plurality of contacts. For eachnew cycle: the ramping up comprises resuming the ramping up of thestimulation current from the recorded amplitude from a previous cycle;and the one or more contacts whose perception thresholds have beenassigned from the previous cycle are excluded from the new cycle. Insome embodiments, the method 1400 further includes, after the respectiveperception thresholds have been assigned for all contacts in theplurality of contacts, identifying a subset of the contacts that produceParesthesia for the patient. In some embodiments, the method 1400further includes, developing a stimulation therapy for treating thepatient based on at least one of: the subset of the contacts thatproduce Paresthesia for the patient or the respective perceptionthresholds assigned to each contact. In some embodiments, the method1400 further includes, displaying, through the graphical user interface,the contacts that are being ramped up with a first visualcharacteristic; displaying, through the graphical user interface, thecontacts for which the respective perception thresholds have beendetermined with a second visual characteristic; and displaying, throughthe graphical user interface, the contacts that produce Paresthesia witha third visual characteristic; wherein the first, second, and thirdvisual characteristics are different from one another. For reasons ofsimplicity, additional steps of the method 1400 are not specificallydiscussed herein.

The CASP process and alternative CASP process discussed above offersvarious advantages. Of course, it is understood that differentembodiments may offer different advantages, not all advantages arenecessarily discussed herein, and no particular advantage is requiredfor all embodiments. One of the advantages is that the CASP andalternative CASP processes can identify the optimal contacts fortreating pain. For example, the pain area sweep discussed above canpinpoint the one or more contacts that offer the best pain relief in thetarget pain areas.

Another advantage is that the perception threshold for each contact maybe quickly determined. Ideally, one or two contacts may be all that areneeded to provide sufficient electrical stimulation to treat each areaof pain for the patient. If a successful surgery is performed, all thecontacts on the lead should be placed at or near the target nervetissues that offer pain relief when stimulated (e.g., causingParesthesia). Suppose contacts 5 and 6 in a lead containing 12 contactsare identified as the best contacts for producing pain relief. As such,contacts 5 and 6 are activated to provide electrical stimulation.However, over time, the positioning for the contacts on the lead maymigrate or drift. When this occurs, the contacts 5 and 6 may no longerbe the best pain-relief contacts. For example, they may have driftedaway from the target nerve tissue. Therefore, new best pain-reliefcontacts need to be identified. Suppose contacts 2 and 3 are nowidentified as the best pain-relief contacts. At this point, the suitablestimulation current for contacts 2 and 3 are already known, becausetheir respective perception thresholds had already been determined inthe CASP process performed during exploratory or permanent surgery.Alternatively, the remaining contacts may each be activated with theirrespective previously-determined perception threshold stimulationcurrents in order to pinpoint the new best pain-relief contacts.Regardless, the CASP and alternative CASP processes result in a map orchart of the “correct” amount of stimulation current to effectivelystimulate each contact (for the contact to produce a stimulationsensation), and this map/chart facilitates the creation of newstimulation protocols and/or the modification of existing stimulationprotocols.

Yet another advantage is that the CASP and alternative processes can beperformed in a relatively short period of time (e.g., a few minutes),because the algorithms discussed above can be quickly executed by thecomputer processors of the clinician programmer or another suitableportable electronic device.

The foregoing has outlined features of several embodiments so that thoseskilled in the art may better understand the detailed description thatfollows. Those skilled in the art should appreciate that they mayreadily use the present disclosure as a basis for designing or modifyingother processes and structures for carrying out the same purposes and/orachieving the same advantages of the embodiments introduced herein.Those skilled in the art should also realize that such equivalentconstructions do not depart from the spirit and scope of the presentdisclosure, and that they may make various changes, substitutions andalterations herein without departing from the spirit and scope of thepresent disclosure.

What is claimed is:
 1. An electronic device for performing acomputer-assisted stimulation programming of an implantable medicaldevice, the electronic device comprising: a graphical user interface; amemory storage component configured to store programming code; and acomputer processor configured to execute the programming code to performthe following tasks: programming a pulse generator to generateelectrical stimulation, the pulse generator being coupled to a leadimplantable inside a patient, the lead containing a plurality ofcontacts through which the electrical stimulation is delivered; rampingup, toward an upper limit, a stimulation current for the plurality ofcontacts; receiving patient feedback while the stimulation current isbeing ramped up, the patient feedback being received via an electronicpatient feedback device and indicating that the patient is beginning tofeel stimulation; in response to receiving the patient feedback:recording an amplitude of the stimulation current that resulted in thepatient feedback; and dividing the plurality of contacts into aplurality of groups; activating the plurality of contacts one group at atime, wherein respective amplitudes of the stimulation currents of thecontacts in each group are set to the recorded amplitude; determining,for each activated group of contacts, whether the patient is able tofeel stimulation while said group of contacts is being activated; inresponse to a determination that a target group of contacts causes thepatient to feel stimulation, sub-dividing the target group of contactsinto a plurality of sub-groups; repeating the dividing, the activating,the determining, and the sub-dividing one or more times until one ormore contacts that caused the patient to feel stimulation areidentified; assigning the recorded amplitude as a perception thresholdfor the identified one or more contacts; displaying, through thegraphical user interface, the contacts that are being ramped up with afirst visual characteristic; and displaying, through the graphical userinterface, the contacts for which the respective perception thresholdshave been determined with a second visual characteristic; wherein thefirst and second visual characteristics are different from one another.2. The electronic device of claim 1, wherein the tasks further comprise:before the ramping up, performing an impedance sweep for all contacts onthe lead; determining which contacts have connections problems based onthe impedance sweep; and selecting contacts that do not have connectionproblems as the plurality of contacts for which the ramping up is to beperformed.
 3. The electronic device of claim 1, wherein the tasksfurther comprise: repeating the ramping up, the receiving of the patientfeedback, the recording of the amplitude, the dividing, the activating,the determining, the sub-dividing, the repeating, and the assigning oneor more cycles until respective perception thresholds have been assignedfor all contacts in the plurality of contacts; wherein for each newcycle: the ramping up comprises resuming the ramping up of thestimulation current from the recorded amplitude from a previous cycle;and the one or more contacts whose perception thresholds have beenassigned from the previous cycle are excluded from the new cycle.
 4. Theelectronic device of claim 3, wherein the tasks further comprise: afterthe respective perception thresholds have been assigned for all contactsin the plurality of contacts, identifying a subset of the contacts thatproduce Paresthesia for the patient.
 5. The electronic device of claim4, wherein the tasks further comprise: developing a stimulation therapyfor treating the patient based on at least one of: the subset of thecontacts that produce Paresthesia for the patient or the respectiveperception thresholds assigned to each contact.
 6. The electronic deviceof claim 4, wherein the tasks further comprise: displaying, through thegraphical user interface, the contacts that produce Paresthesia with athird visual characteristic; wherein the first, second, and third visualcharacteristics are different from one another.
 7. The electronic deviceof claim 1, wherein the first visual characteristic and the secondvisual characteristic are different in color or different in shading. 8.A medical system, comprising: a lead configured to deliver electricalstimulation to a patient via one or more of a plurality of contactslocated on the lead; a pulse generator to which the lead is coupled,wherein the pulse generator is configured to generate the electricalstimulation; an electronic patient feedback device configured to detectpatient feedback in response to the electrical stimulation; and anelectronic device telecommunicatively coupled to the pulse generator andto the electronic patient feedback device, wherein the electronic deviceis configured to program the pulse generator to generate the electricalstimulation, and wherein the electronic device includes: a graphicaluser interface; a memory storage component configured to store computerinstructions; and a processor component configured to execute thecomputer instructions; wherein the computer instructions, when executedby the processor component, perform the following tasks: ramping up,toward an upper limit, a stimulation current for a plurality of contactson the lead; receiving, from the electronic patient feedback device,patient feedback while the stimulation current is being ramped up, thepatient feedback indicating that the patient is beginning to feelstimulation; in response to receiving the patient feedback: recording anamplitude of the stimulation current that resulted in the patientfeedback; and dividing the plurality of contacts into a plurality ofgroups; activating the plurality of contacts one group at a time,wherein respective amplitudes of the stimulation currents of thecontacts in each group are set to the recorded amplitude; determining,for each activated group of contacts, whether the patient is able tofeel stimulation while said group of contacts is being activated; inresponse to a determination that a target group of contacts causes thepatient to feel stimulation, sub-dividing the target group of contactsinto a plurality of sub-groups; repeating the dividing, the activating,the determining, and the sub-dividing one or more times until one ormore contacts that caused the patient to feel stimulation areidentified; assigning the recorded amplitude as a perception thresholdfor the identified one or more contacts; displaying, through thegraphical user interface, the contacts that are being ramped up with afirst visual characteristic; and displaying, through the graphical userinterface, the contacts for which the respective perception thresholdshave been determined with a second visual characteristic; wherein thefirst and second visual characteristics are different from one another.9. The medical system of claim 8, wherein the tasks further comprise:before the ramping up, performing an impedance sweep for all contacts onthe lead; determining which contacts have connections problems based onthe impedance sweep; and selecting contacts that do not have connectionproblems as the plurality of contacts for which the ramping up is to beperformed.
 10. The medical system of claim 8, wherein the tasks furthercomprise: repeating the ramping up, the receiving of the patientfeedback, the recording of the amplitude, the dividing, the activating,the determining, the sub-dividing, the repeating, and the assigning oneor more cycles until respective perception thresholds have been assignedfor all contacts in the plurality of contacts; wherein for each newcycle: the ramping up comprises resuming the ramping up of thestimulation current from the recorded amplitude from a previous cycle;and the one or more contacts whose perception thresholds have beenassigned from the previous cycle are excluded from the new cycle. 11.The medical system of claim 10, wherein the tasks further comprise:after the respective perception thresholds have been assigned for allcontacts in the plurality of contacts, identifying a subset of thecontacts that produce Paresthesia for the patient.
 12. The medicalsystem of claim 11, wherein the tasks further comprise: developing astimulation therapy for treating the patient based on at least one of:the subset of the contacts that produce Paresthesia for the patient orthe respective perception thresholds assigned to each contact.
 13. Themedical system of claim 11, wherein the tasks further comprise:displaying, through the graphical user interface, the contacts thatproduce Paresthesia with a third visual characteristic; wherein thefirst, second, and third visual characteristics are different from oneanother.
 14. The medical system of claim 8, wherein the first visualcharacteristic and the second visual characteristic are different incolor or different in shading.
 15. A method of performing acomputer-assisted stimulation programming of an implantable medicaldevice, the method comprising: ramping up, toward an upper limit, astimulation current for a plurality of contacts on a lead that isconfigured to be implanted inside, or attached to, a patient, thestimulation current being generated by a pulse generator and beingdelivered to the patient as a part of an electrical stimulation therapyfor the patient; receiving, from an electronic patient feedback device,patient feedback while the stimulation current is being ramped up, thepatient feedback indicating that the patient is beginning to feelstimulation; in response to receiving the patient feedback: recording anamplitude of the stimulation current that resulted in the patientfeedback; and dividing the plurality of contacts into a plurality ofgroups; activating the plurality of contacts one group at a time,wherein respective amplitudes of the stimulation currents of thecontacts in each group are set to the recorded amplitude; determining,for each activated group of contacts, whether the patient is able tofeel stimulation while said group of contacts is being activated; inresponse to a determination that a target group of contacts causes thepatient to feel stimulation, sub-dividing the target group of contactsinto a plurality of sub-groups; repeating the dividing, the activating,the determining, and the sub-dividing one or more times until one ormore contacts that caused the patient to feel stimulation areidentified; assigning the recorded amplitude as a perception thresholdfor the identified one or more contacts; displaying, through a graphicaluser interface, the contacts that are being ramped up with a firstvisual characteristic; and displaying, through the graphical userinterface, the contacts for which the respective perception thresholdshave been determined with a second visual characteristic; wherein thefirst and second visual characteristics are different from one another.16. The method of claim 15, further comprising: before the ramping up,performing an impedance sweep for all contacts on the lead; determiningwhich contacts have connections problems based on the impedance sweep;and selecting contacts that do not have connection problems as theplurality of contacts for which the ramping up is to be performed. 17.The method of claim 15, further comprising: repeating the ramping up,the receiving of the patient feedback, the recording of the amplitude,the dividing, the activating, the determining, the sub-dividing, therepeating, and the assigning one or more cycles until respectiveperception thresholds have been assigned for all contacts in theplurality of contacts; wherein for each new cycle: the ramping upcomprises resuming the ramping up of the stimulation current from therecorded amplitude from a previous cycle; and the one or more contactswhose perception thresholds have been assigned from the previous cycleare excluded from the new cycle.
 18. The method of claim 17, furthercomprising: after the respective perception thresholds have beenassigned for all contacts in the plurality of contacts, identifying asubset of the contacts that produce Paresthesia for the patient.
 19. Themethod of claim 18, further comprising: developing a stimulation therapyfor treating the patient based on at least one of: the subset of thecontacts that produce Paresthesia for the patient or the respectiveperception thresholds assigned to each contact.
 20. The method of claim18, further comprising: displaying, through the graphical userinterface, the contacts that produce Paresthesia with a third visualcharacteristic; wherein the first, second, and third visualcharacteristics are different from one another.
 21. The method of claim15, wherein the first visual characteristic and the second visualcharacteristic are different in color or different in shading.